Methods and Apparatus for Event Distribution in Messaging Systems

ABSTRACT

Methods and apparatus for distributing events among a set of traffic processor in a telecommunication network. The methods and apparatus determines a traffic processor from the set of traffic processors with the lowest traffic load, the traffic load is determined for each traffic processor of the set of traffic processors based on a weighting factor, an event queue length of a traffic processors and a current traffic load. Events are re-distributed when a change occurs in the set of traffic processors. The re-distribution is based on a determination of an allowable event queue length for each traffic processor of the set of traffic processors, which is based on the current traffic load, an optimal traffic load and a maximum event queue length.

TECHNICAL FIELD

The present invention generally relates to messaging methods and systems and, more particularly, to methods and systems for providing messages delivery in messaging systems.

BACKGROUND

Communication devices and systems in general, and messaging systems particular, continue to gain in popularity. Paging, instant messaging (IM), text messaging on cell phones (e.g., SMS) and multimedia messaging (MMS) are examples of messaging systems which have enjoyed popularity over the years. In order to enrich end-user experience and allow the end-user more freedom in choosing media formats, the capabilities of messaging services are continuously being improved. In making these improvements, however, designers should provide backward compatibility, i.e., such improvements should not lead to a situation where a user of a new messaging service or technology can only communicate with other users that are enabled for the new messaging service or technology. Therefore, efforts should be made to support interworking between new messaging technologies and well-established messaging technologies to provide for a smooth migration of new technologies into a world of integrated messaging.

With the advent of multimedia and 3G (and soon 4G) in the telecommunication area, it technically is no longer necessary to predicate the manner in which communications are performed on the type of media that is being communicated, i.e., 3G and 4G telecommunications are intended to be more media independent than previous generations of communications technology. Nonetheless, the introduction of new messaging functionality still, at least initially, tends to create a fragmentation of communication capabilities, as it is virtually impossible to upgrade all of the users in a system to the latest technology at the same time.

Each of these service centers has their own message store, their own user directory, their own notification server and, sometimes, their own O&M system and their own event scheduler. An event scheduler handles the incoming and outgoing messages for a messaging delivery system. If the messaging delivery system is used in a telecom network, event schedulers have telecom grade characteristics, e.g. High availability and Scalability, etc.

In a messaging delivery systems, the event scheduler is designed to be co-located with the messaging server. The event scheduler handles the events associated to multiple traffic processors for event delivery of messages to user equipments (UEs). When a failure within traffic processors occurs or when a traffic processor is added to the messaging system, the traffic load has to be balanced between the remaining traffic processors for avoiding congestion within the traffic processors or underutilization of some traffic processors. Furthermore, the traffic load for messaging server needs to be balanced in a short amount of time. Existing traffic load management solutions in massaging system fail to disclose a method and apparatus for load balancing of events.

Accordingly, it would be desirable to have a solution for load balancing between traffic processors in order to avoid the afore-described problems and drawbacks.

SUMMARY

It is a broad aspect of the invention to provide a method for distributing event delivery for a set of traffic processors in a telecommunication network. The method obtains a status for each active traffic processors of the set of processors in the telecommunication network, determines a traffic processor from the set of traffic processors with the lowest traffic load, the traffic load is determined for each traffic processor of the set of traffic processors based on a weighting factor, an event queue length of a traffic processors and a current traffic load. The method further sorts each traffic processor from the set of traffic processors, selects an event group manager, the event group manager is an event scheduler that manages the traffic processor of the set of traffic processors with the lowest traffic load, retrieves a time slot table for each traffic processor of the set of traffic processors, determines an allowable event queue length for each traffic processor of the set of traffic processors, the event queue length being a determined threshold for redistributing event delivery. The allowable event queue length is determined based on the current traffic load, an optimal traffic load and a maximum event queue length. Afterwards, the method re-distributes the event among the set of traffic processors starting with the traffic processor having the lowest traffic load.

The method further detects a permanent or temporarily failure of at least one traffic processor and allows adding at least one traffic processor to the set of traffic processors.

It is another broad aspect of the invention to provide a communication node having an event scheduler group for distributing event delivery to a set of traffic processors and an event scheduler group manager for managing the communication node and the set of traffic processors, determining a traffic processor from the set of traffic processors with the lowest traffic load, the traffic load is determined for each traffic processor of the set of traffic processors based on a weighting factor, an event queue length of a traffic processors and a current traffic load, sorting each traffic processor from the set of traffic processors, selecting an event group manager, retrieving a time slot table for each traffic processor of the set of traffic processors, determining an allowable event queue length for each traffic processor of the set of traffic processors, the event queue length being a determined threshold for redistributing event delivery, wherein the allowable event queue length based on the current traffic load, an optimal traffic load and a maximum event queue length and re-distributing the event among the set of traffic processors starting with the traffic processor having the lowest traffic load.

The event scheduler group manager further detects a permanent or temporarily failure of at least one traffic processor and allows adding at least one traffic processor to the set of traffic processors.

BRIEF DESCRIPTION OF THE DRAWINGS

The foregoing and other aspects, features, and advantages of the invention will be apparent from the following more particularly detailed description as illustrated in the accompanying drawings in which reference characters refer to the same parts throughout the various views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.

FIG. 1 is a schematic diagram illustrating a telecommunication network that includes a group of event schedulers and a set of traffic processors for managing events in the telecommunication network in accordance to the invention;

FIG. 2 is a schematic diagram illustrating a detailed view of a communication node in accordance to the invention;

FIG. 3 is detailed view of an event scheduler group manager in accordance to the invention;

FIG. 4 a is a flow chart of a flow chart of a method for re-distributing traffic after a permanent failure of a traffic processor in accordance to the invention;

FIG. 4 b is a flow chart of a flow chart of a method for re-distributing traffic after a temporarily failure of a traffic processor in accordance to the invention;

FIG. 4 c a flow chart of a method for re-distributing traffic when a traffic processor recovers in a set of traffic processors or when a traffics processors is added to the set of traffic processors;

FIG. 5 is an example of a time slot of a traffic processor in accordance to the invention;

FIG. 6 a is a flow chart of an exemplary algorithm for determining the traffic load of a traffic processor; and

FIG. 6 b is a flow chart of an exemplary algorithm for determining the allowable event queue length for a traffic processor.

DETAILED DESCRIPTION

In the following description, for purposes of explanation and not limitation, specific details are set forth such as particular architectures, interfaces, techniques. In order to provide a thorough understanding of the present invention. However, it will be apparent to those skilled in the art that the present invention may be practiced in other embodiments that depart from these specific details. In other instances, detailed descriptions of well known devices, circuits, and methods are omitted so as not to obscure the description of the present invention with unnecessary detail.

Reference is now made to FIG. 1, which illustrates a telecommunication network 10 that includes a messaging file system (MFS) 23, a communication node 200 comprising event scheduler group 20 and a set of traffic processors (TPs) 22 for managing events in the telecommunication network 10 in accordance to the invention. An event is either delivery event or expire event. An event is used to handle the message. The messages are stored in the MFS 23 as message file with special format. The MFS stores a copy of messages and associates the stored messages to be delivered to the TP 24 and ultimately to UEs 16. The MFS 23 can be any database or repository capable of storing messages (e.g. headers and body of messages).

The set of TPs 22, which can also be viewed as servers or communication nodes, may be connected to one or more external networks 12 (e.g., the Internet), for delivering messages to one or more subscribers, represented as user equipment 16 (denoted in the drawing as multiple subscriber devices UE1, UE2, . . . , UEN). The UEs can be any mobile terminal or fixed personal computer (PC). The network 10 can be any packet data network, while not being limited to, an Internet Protocol (IP) Multimedia Subsystem (IMS). Thus the message sent in to UEs may be, while not being limited to, a Short Message Service (SMS) message, an IMS message or a Multimedia Messaging Service (MMS) message. The network 10 may use any packet data communication protocols for sending messages to UEs, while not being limited, e.g. Session Initiation Protocol (SIP), published by Internet Engineering Task Force (IETF), www.ietf.org, Request For Comments (RFCs) or any 3G or 4G communication protocols.

FIG. 2 provides a more detailed view of the communication node 200, which can be any messaging. In FIG. 2, the set of TPs 22 is broken out as a number of individual traffic processor 24 in the communication node, each having a traffic load (TL) 25 of event (e.g. messages). As shown on FIG. 2, each TP 24 accesses its own corresponding EQ 41 stored in the MFS 23. The drawing illustrates TP1 . . . TP5, but those skilled in the art will appreciate that greater or lesser numbers of traffic processors may be involved. Indeed, it should be understood that there may be multiple traffic processor sets 22, each set having a corresponding event scheduler group 20, which consists of event schedulers (ES) 21. Additionally, or alternatively, there may be one or more event schedulers 21, each managing multiple traffic processors sets 20. An event scheduler (ES) 21 schedules a delivery event for incoming message according to the roles provided by messaging server, schedules an expire event for incoming message, instructs a message server to deliver the message when a delivery event is triggered, instructs a message server to handle the expired message when a expired event is triggered, provides the clean up mechanism to handle the orphan files (delivery or expire event files) in a messaging system (e.g. communication node 200) and stores delivery and expire events in the MFS 23. The event scheduler group 20 is able to find out which TP is added or fails by using some communication tools, such as “heart-beat mechanism”, which allow the event scheduler group 20 to detect a change in the set of TPs 22 in a short amount of time. Each ES 21 is responsible for reporting the status of its associated TP or TPs (i.e. TL 25 and EQ 41) in order to be voted for an event scheduler group manager 205. ES 21 can also keep the copy of EQ 41 to improve the performance. If it is the case the ES 21 synchronizes the corresponding EQ 41 in MFS 23 from time to time.

The communication node 200 also comprises an event scheduler group manager 205, which is selected based upon the status (traffic load and event queue length) of an ES 21. The event scheduler group manager 205 is responsible for re-distributing the event queue across the set of TPs 22. As soon as the event scheduler becomes “event scheduler group manager 205”, the manager 205 becomes in a charge of handling the re-distribution of event queue across the set of TPs 22. The event scheduler group manager 205 may change from time to time according to the TL 25 and EQ 41 of the communication node 200. The event scheduler group manager 205 is selected by the group 20 and the event scheduler group manager that is acting as event scheduler group manager before a new selection.

The communication node 200 also comprises a load balancing (LB) functionality 30 for managing incoming/outgoing traffic from/to the telecommunication network 10 and the UEs 16. The LB 30 is connected to each TP and adjusts the TL 25 for each TP 24. The traffic load is managed based on criteria defined by the event scheduler group manager 205 and based on defined algorithms. The event may be, while not being limited to, the number of message requests, etc.

FIG. 3 provides a detailed view of the event scheduler group manager 205. The event scheduler group manager 205 comprises a database 206 in which is stored a list 300 of ES 21 and TP 24 of the communication node 200 and the TL 25 associated to each TP 24 and results of calculations made by the event scheduler group manager 205 (e.g. Ranking result (Min_(inside) _(—) _(group)) 312). Each ES 21 stores this list 300 manages the list when it becomes the event scheduler group manager 205. The group manager 205 distributes the TL 25 among them. The list 300 comprises event scheduler IDs 302, TPs IDs 304, the traffic load 306 for each TP, the event queue length 308 for each TP and a ranking 312 for the TPs. The database 206 can be any persistent memory like a Read-Only Memory (ROM) or volatile memory like a Random access memory (RAM), or a Structured Query Language (SQL) database, etc. The ESs 21 and the TPs 22 may be software hardware or any combination thereof.

In case of some traffic processor failure, the system shall still perform as it used to be. When the failed processor recovers, the system returns to normal operation. In order to handle the crashed TP or add new processor in communication node 200 to increase overall traffic load, the re-distribution of tasks to the traffic processors is required.

FIG. 4 a describes a flow chart of a method for re-distributing traffic (e.g. event delivery) when a permanent failure is detected in a TP 24 of the messaging system 200. For example in FIG. 4 a, TP3 may fail for any reason e.g. overload of a TP or malfunction of the TP. The event scheduler group 20, which controls and operates the communication node 200 detects that a TP 24 has failed (step 400). At step, 404, the event scheduler group 20 obtains the status of active TP, which consist on obtaining the TL 25 and event queue length in EQ 41 from list 300. The event scheduler group manager 205 is selected by voting on the status (traffic loads and event queue length). At step 408, the selected event scheduler group manager 205 determines the TP with the lowest traffic load. This determination can be made for each TP based on their traffic load (e.g. TL 25), the length of event queue (e.g. EQ 41) and a weighting factor (δ) 701, which is used to determine whether emphasis of the sorting priority is placed on the traffic load or on the allowable queue length of a TP 24. The weighting factor is stored in the database 206 and may be pre-defined by an operator of network 10 or determined by the manager 205. FIG. 6 a describes the steps of an exemplary algorithm for determining the TP 24 with the lowest traffic load. The manager 205 retrieves the weighting factor (δ) 701 (step 700), a current event queue length (e.g. EQ 41) (step 704), the current traffic load (e.g. TL 25) (step 708). Then at step 712, the manager 205 computes the following:

Min_(inside) _(—) _(group){δ*Traffic Load+(1−δ)*the_length_of_eventQueue}, with 0<δ<1

Following the determination of step 408, the manager stores the results in the database 206 (step 410). The manager 205 then sorts the TPs 24 in the list 300 (step 412). This algorithm determines the value to be used for sorting remaining active TP 24 in a special order determined at step 712 (step 412). The sorting of TPs 24 is for determining how to handle the re-distribution task among TPs 24. Thus, the events (i.e. EQ 41 and TL 25) of the failed TP (or server) are redistributed in event queues of each remaining TP, preferably according to the priority sorting (e.g. from the TP having the lowest traffic load to the TP having the heavy traffic load), while ensuring that the queue does not exceed a determined allowable length. The allowable queue length can be determined based on an algorithm. At step 416, an event scheduler is selected 205. The selected manager 205 may be the same ES 21—the ES 21 executing steps 400 to 424- or a different ES 21.

The selected event scheduler group manager 205, which is in electronic communication (e.g. wireless connection or wired connection) with the MFS 23, retrieves the time slot 305 for event delivery of the failed TP3 (step 418). The time slot is store in the MFS 23 and can be view in detail on FIG. 5. FIG. 5 illustrates a time slot 305 for delivery of events (e.g. message) to UEs 16 in a typical interval of time. The time slot 305 can be associated to any TP 24, those skilled in the art would understand that the time slot can be modified for being used for a month, year or any defined time interval. At step 420, the group manager 205 determines an allowable event queue length 419 of each TP 24. The allowable queue length 419 is applied by the manager 205 during a re-distribution step and based on the current traffic load (TL 25) of each TP 24 and on a determined or optimal traffic load. The allowable event queue length 419 is the threshold of the event queue length (e.g. EQ 41) for each TP 24. The events of the troubled TP are moved to remaining TP 24 until event queue length 419 is reached. FIG. 6 b describes the steps of an exemplary algorithm for determining the allowable event queue length 419 for each TP 24. The manager 205 determines a current traffic load (L_(C) 801) (step 801) and an optimal/design traffic load (L_(O)) 803 (step 802). The optimal/design traffic load (L_(O)) 803 is determined for providing optimal use of the set of TPs 22. The manager 205 then determines a maximum EventQueuelength 805 (step 804). Then at step 806, the manager 205 computes the following:

${EventQueueLength} = {\max \left\{ {0,\left\lbrack {1 - {\frac{1 + {{sign}\left( {L_{C} - L_{O}} \right)}}{2}\frac{\left( {L_{C} - L_{O}} \right)}{L_{O}}}} \right\rbrack} \right\}*\max \; {EventQueueLength}}$   Where $\mspace{20mu} \begin{matrix} {{{sign}\left( {L_{c} - L_{o}} \right)} = {{1\mspace{14mu} {if}\mspace{14mu} L_{C}} \geq L_{O}}} \\ {= {{{- 1}\mspace{14mu} {if}\mspace{14mu} L_{C}} < L_{O}}} \end{matrix}$

Then, the allowable length is set to 0, if the current traffic load exceeds a threshold corresponding to an optimal/design traffic load. The result of the algorithm is stored in the database 206.

Following the computation of the event queue length, store the results in the database 206 (step 422) and then the group manager 205 re-distributes the traffic and event queue length of the failed TP3 to all remaining active TPs 24 (step 424).

Alternatively, a TP 24 may not have been permanently failed and may recover after a period of time. The TP 24 may also be temporary shut down for maintenance purposes. In such case the events schedule during a certain period of time need to be delivered by active TP 24. FIG. 4 b describes a flow chart of a method for re-distributing traffic when a temporary failure of a TP 24 of the messaging system 200 occurs. The example is given for TP3 that may be temporarily shut down. The selected event scheduler group manager 205, which is in electronic communication (e.g. wireless connection or wired connection) with the MFS 23, detects that a TP 24 is temporarily unavailable (step 500).

At step 504, the event scheduler group 20 obtains the status of active TP, which consist on obtaining the TL 25 and event queue length in EQ 41 from list 300. The event scheduler group manager 205 is selected by voting on the status (traffic loads and event queue length). At step 508, the selected event scheduler group manager 205 determines the TP with the lowest traffic load. This determination can be made for each TP based on their traffic load (e.g. TL 25), the length of event queue (e.g. EQ 41) and a weighting factor (δ) 701, which is used to determine whether emphasis of the sorting priority is placed on the traffic load or on the allowable queue length of a TP 24. The weighting factor is stored in the database 206 and may be pre-defined by an operator of network 10 or determined by the manager 205. FIG. 6 a describes the steps of an exemplary algorithm for determining the TP 24 with the lowest traffic load. The manager 205 retrieves the weighting factor (δ) 701 (step 700), a current event queue length (e.g. EQ 41) (step 704), the current traffic load (e.g. TL 25) (step 708). Then at step 712, the manager 205 computes the following:

Min_(inside) _(—group){δ*Traffic Load+(1−δ)*the_length_of_eventQueue}, with 0<δ<1

Following the determination of step 508, the manager stores the results in the database 206 (step 510). The manager 205 then sorts the TPs 24 in the list 300 (step 512). This algorithm determines the value to be used for sorting remaining active TP 24 in a special order determined at step 712 (step 512). The sorting of TPs 24 is for determining how to handle the re-distribution task among TPs 24 during the period where the TP3 is unavailable. Thus, the events (i.e. EQ 41 and TL 25) of the failed TP (or server) are redistributed in event queues of each remaining TP, preferably according to the priority sorting (e.g. from the TP having the lowest traffic load to the TP having the heavy traffic load), while ensuring that the queue does not exceed a determined allowable length. The allowable queue length can be determined based on an algorithm. At step 616, an event scheduler is selected 205. The selected manager 205 may be the same ES 21 -the ES 21 executing steps 500 to 524—or a different ES 21.

The manager 205 retrieves the time slot 305 for event delivery of the temporary unavailable TP3 as defined in step 418 (step 518). At step 520, the group manager 205 determines an allowable event queue length 519 of each TP 24. The allowable queue length 519 is applied by the manager 205 during a re-distribution step and based on the current traffic load (TL 25) of each TP 24 and on a determined or optimal traffic load. The allowable event queue length 519 is the threshold of the event queue length (e.g. EQ 41) for each TP 24. The events of the troubled TP are moved to remaining TP 24 until event queue length 519 is reached. FIG. 6 b describes the steps of an exemplary algorithm for determining the event queue length 519. Then, at step 524 the group manager 205 re-distributes traffic load during the determined the period 523 for which the TP3 cannot deliver massages. The determined period corresponds to the time during which the TP 24 is unavailable.

A TP 24 may also be added to the communication node 200. Thus, FIG. 4 c describes a flow chart of a method for re-distributing traffic when a TP 24 recovers from failure or when a TP 24 is added to the messaging system 200. The method starts at step 600, the event scheduler group 20 selects and determines that the new TP 24 is the group manager 205. The selected event scheduler group manager 205 then retrieves the status for all the existing TPs (traffic load and event length) (step 604). It then determines the average 314 of event queue length per TP 24 based on list 300 (step 608). The manager 205 then stores the result of the average in the database 206. At step 612, the selected event scheduler group manager 205 determines the TP with the lowest traffic load. This determination can be made for each TP based on its traffic load (e.g. TL 25), the length of event queue (e.g. EQ 41) and a weighting factor (δ) 701, which is used to determine whether emphasis of the sorting priority is placed on the traffic load or on the allowable queue length of a TP 24. The weighting factor is stored in the database 206 and may be pre-defined by an operator of network 10 or determined by the manager 205. FIG. 6 a describes the steps of an exemplary algorithm for determining the TP 24 with the lowest traffic load. The manager 205 retrieves the weighting factor (δ) 701 (step 700), a current event queue length (e.g. EQ 41) (step 704), the current traffic load (e.g. TL 25) (step 708). Then at step 712, the manager 205 computes the following:

Min_(inside) _(—) _(group){δ*Traffic Load+(1−δ)*the_length_of_eventQueue}, with 0<δ<1

Following the determination of step 612, the manager stores the results in the database 206 (step 614). The manager 205 then sorts the remaining active TP 24 in the list 300 from the TP 24 having the heavy traffic load to the TP 24 having the lightest load (step 616). At step 620, a time slot 305 is created in the MFS 23 for the newly added TP 24. The event scheduler group manager 205 then performs a loop over all TP 24 of the messaging system 200 for determining heavy traffic in order to light traffic load from overloaded TP (step 624). Thus, some events are removed from the EQ 41 of heavily loaded and/or high priority TP 24 and placed in a queue for the new TP 24. Then, at step 628 the group manager 205 (e.g. event scheduler of the added TP 24) re-distribute traffic load of each TP over the average 314 to each TP 24 under the average 314 (step 628).

It can be understood that some messages and therefore some parameters sent between communication nodes of the communication network 10 are omitted for clarity reasons. More particularly, it should also be understood that Figures depict a simplified network 10, and that many other communication nodes have been omitted for clarity reasons only. Hence, the network 100 may comprise more than the number of communication nodes present in the Figures.

Modifications and variations are possible in light of the above teachings or may be acquired from practice of the invention. The following claims and their equivalents define the scope of the invention. 

1. A method for distributing event delivery for a set of traffic processors in a telecommunication network, the method comprising the steps of: obtaining a status for each active traffic processors of the set of processors in the telecommunication network; determining a traffic processor from the set of traffic processors with the lowest traffic load, the traffic load is determined for each traffic processor of the set of traffic processors based on a weighting factor, an event queue length of a traffic processors and a current traffic load; sorting each traffic processor from the set of traffic processors; selecting an event group manager, the event group manager is an event scheduler that manages the traffic processor of the set of traffic processors with the lowest traffic load; retrieving a time slot table for each traffic processor of the set of traffic processors; determining an allowable event queue length for each traffic processor of the set of traffic processors, the event queue length being a determined threshold for redistributing event delivery, wherein the allowable event queue length based on the current traffic load, an optimal traffic load and a maximum event queue length; and re-distributing the event among the set of traffic processors starting with the traffic processor having the lowest traffic load.
 2. The method of claim 1, wherein the step of obtaining includes a step of detecting a failure in at least one traffic processor in the set of traffic processors, the at least one traffic processor being permanently unavailable.
 3. The method of claim 2, wherein the step of sorting includes the steps of: sorting each traffic processor from the set of traffic processors that remain from the failure; and storing the results of the sorting in a database.
 4. The method of claim 2, wherein the step of retrieving includes a step of retrieving a time slot table for the at least one traffic processor.
 5. The method of claim 1, wherein the event scheduler group manager is an event scheduler that manages the traffic processor of the set of traffic processors with the lowest traffic load.
 6. The method of claim 5, wherein the step of determining an allowable event queue length includes a step of storing the results of the determination in a database of the event group manager.
 7. The method of claim 1, wherein the step of obtaining includes a step of detecting that at least one traffic processor in the set of traffic processors is temporarily unavailable.
 8. The method of claim 7, wherein the step of sorting includes the steps of: sorting each traffic processor from the set of traffic processors that remain from the unavailability of the at least one traffic processor; and storing the results of the sorting in a database.
 9. The method of claim 7, wherein the step of retrieving includes a step of retrieving a time slot table for the at least one traffic processor.
 10. A method for distributing event delivery for a set of traffic processors in a telecommunication network, the method comprising the steps of: adding a traffic processor to the a set of traffic processors; selecting the event scheduler of the added traffic processor as event scheduler group manager; obtaining a status for each active traffic processors of the set of processors in the telecommunication network; determining the average of event queue length for each traffic processor of the set of traffic processors; determining a traffic processor from the set of traffic processors with the lowest traffic load, the traffic load is determined for each traffic processor of the set of traffic processors based on a weighting factor, an event queue length of a traffic processors and a current traffic load; sorting each traffic processor from the set of traffic processors; and re-distributing the event among each traffic processors of the set of traffic processors starting with the traffic processor having the lowest traffic load.
 11. The method of claim 10, wherein the step of adding a traffic processor includes a step of creating a time slot for the added traffic processor.
 12. The method of claim 10, wherein the step of determining the average includes a step of storing the results of the determination in a database of the event scheduler group manager.
 13. The method of claim 10, wherein the step of determining a traffic processor includes a step of storing the results of the determination in a database of the event scheduler group manager.
 14. The method of claim 1, wherein the set of traffic processors is a set of messaging servers.
 15. The method of claim 1, wherein the event scheduler manages one or more traffic processors.
 16. A communication node for managing event delivery in a telecommunication network, the communication node comprising: an event scheduler group for distributing event delivery to a set of traffic processors; wherein the event scheduler group comprises an event scheduler group manager for managing the communication node and the set of traffic processors, determining a traffic processor from the set of traffic processors with the lowest traffic load, the traffic load is determined for each traffic processor of the set of traffic processors based on a weighting factor, an event queue length of a traffic processors and a current traffic load, sorting each traffic processor from the set of traffic processors, selecting an event group manager, retrieving a time slot table for each traffic processor of the set of traffic processors, determining an allowable event queue length for each traffic processor of the set of traffic processors, the event queue length being a determined threshold for redistributing event delivery, wherein the allowable event queue length based on the current traffic load, an optimal traffic load and a maximum event queue length and re-distributing the event among the set of traffic processors starting with the traffic processor having the lowest traffic load.
 17. The communication node of claim 16, wherein the event scheduler group selects an event scheduler group manager, the event group manager is an event scheduler that manages the traffic processor of the set of traffic processors with the lowest traffic load.
 18. The communication node of claim 17, wherein the event scheduler group manager is selected based on the following: Min_(inside) _(—) _(group){δ*Traffic Load+(1−δ)*the_length_of_eventQueue}, with 0<δ<1 and where δ is the weighting factor.
 19. The communication node of claim 16, wherein the event scheduler group manager determined the allowable event length for redistributing event delivery based on the following, where L_(C) is the current traffic load, (L_(O)) the optimal/design traffic load: ${EventQueueLength} = {\max \left\{ {0,\left\lbrack {1 - {\frac{1 + {{sign}\left( {L_{C} - L_{O}} \right)}}{2}\frac{\left( {L_{C} - L_{O}} \right)}{L_{O}}}} \right\rbrack} \right\}*\max \; {EventQueueLength}}$   Where $\mspace{20mu} \begin{matrix} {{{sign}\left( {L_{c} - L_{o}} \right)} = {{1\mspace{14mu} {if}\mspace{14mu} L_{C}} \geq L_{O}}} \\ {= {{{- 1}\mspace{14mu} {if}\mspace{14mu} L_{C}} < L_{O}}} \end{matrix}$
 20. The communication node of claim 16, wherein the event scheduler group manager detects a failure in at least one traffic processor in the set of traffic processors, the at least one traffic processor being permanently unavailable.
 21. The communication node of claim 16, wherein the event scheduler group manager detecting that at least one traffic processor in the set of traffic processors is temporarily unavailable.
 22. The communication node of claim 16, wherein the event scheduler group manager adds a traffic processor to the a set of traffic processors, selects the event scheduler of the added traffic processor as event scheduler group manager, obtains a status for each active traffic processors of the set of processors in the telecommunication network, determines the average of event queue length for each traffic processor of the set of traffic processors, determines a traffic processor from the set of traffic processors with the lowest traffic load, the traffic load is determined for each traffic processor of the set of traffic processors based on a weighting factor, an event queue length of a traffic processors and a current traffic load, sorts each traffic processor from the set of traffic processors and re-distributing the event among each traffic processors of the set of traffic processors starting with the traffic processor having the lowest traffic load.
 23. The communication node of claim 16, wherein the event scheduler manages one or more traffic processors.
 24. The communication node of claim 16, wherein the communication node is a messaging system.
 25. The method of claim 1, wherein the set of traffic processors is a set of messaging servers. 